home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 11: TSX-11 / Linux Cubed Series 11 - TSX-11 Vol 1.iso / usr.bin / readme.mba < prev    next >
Text File  |  1996-11-30  |  7KB  |  159 lines

  1.                               ___                     _____      _____
  2.         |  |     |        |  |   )                   /          /    /
  3.         |`'|  _ -|-  _   ||  |  '_   _   .-.  _     /          /    /
  4.         |  | ( ) |  ( \  `|  |    ) ( \  `-. ( )   `---.      /    /
  5.            | -'--`-- - `-' \/ ---' - - `-`- --'--      /  <> /    /
  6. ___________________________/\_____________________`.__/_____/____/_____________
  7.  
  8.                               Please read the dox  /
  9.                                                   '
  10.  
  11.  
  12. WHAT'S NEW IN THIS RELEASE:
  13.  
  14.     o SPEED
  15.          MetalBase 5.0 destroys even 4.1a speed-wise; queries are the same
  16.          speed, but adds/updates/deletes are always at least twice as fast, and
  17.          often over three times as fast!  Internal caching of index pointers
  18.          just makes the whole world turn 'round better...
  19.  
  20.     o CONVERSION
  21.          The utility MBCONV will convert 4.0 and 4.1a relations to 5.0 format.
  22.          It is absolutely perfectly safe, but requires that you have enough
  23.          free space to essentially make a copy of the relation.
  24.  
  25.     o LOCKING
  26.          Previously, unless you compiled with -DUNIX_LOCKS (and had a *nix
  27.          machine), bad things would happen if a program shut down while
  28.          something was being changed.  Now, since all indices are written at
  29.          once (caching is so nice), chances of corruption are much smaller; and
  30.          if a process does shut down with a system-placed lock in place, the
  31.          next process will detect the condition and remove the lock, and
  32.          decrement the number of users.  A request queue has also been built
  33.          in, so that processes will always get equal timeshares.
  34.  
  35.     o CREATE ON-THE-FLY
  36.          You can now design and create a relation at run-time:
  37.             rel = mb_new();
  38.             mb_addfield (rel, "Customer's last name",  T_CHAR,   15);
  39.             mb_addfield (rel, "Customer's first name", T_CHAR,   10);
  40.             mb_addfield (rel, "Customer's number",     T_SERIAL, 40);
  41.             mb_addindex (rel, "ix_name",   1, "0,1");
  42.             mb_addindex (rel, "ix_number", 1, "2");
  43.             mb_create (rel, "/usr/joe/simple.rel", 0);
  44.          Check out the code for BUILD and MBCONV; they both use it.
  45.  
  46.     o SIMPLE PHONE NUMBERS
  47.          The schema type "phone" (C typedef == "mb_phone") has been added to
  48.          5.0 to make handling of phone numbers easier; phone types accept area
  49.          codes (of course), and extensions up to x99999.  The routines
  50.          scn_phone() and fmt_phone() are included for quick handling of phone
  51.          numbers, just as scn_ and fmt_ are provided for date and time!
  52.  
  53.     o ENCRYPTION
  54.          Encryption is now working for everyone, even MS-DOS users.  Be
  55.          careful, though--I'm haphazard enough with encryption that, for
  56.          example, a bad encryption key passed to VR under DOS will usually
  57.          make you reboot your machine; under *nix it'll usually cause a seg
  58.          violation.  Now THAT's encryption.  :)
  59.  
  60.     o DOCUMENTATION
  61.          The documentation, though still not perfect, is much more up to date
  62.          than it was for the 4.0 release.  Included here are:
  63.  
  64.             dox/mbase.dox   -- General documentation (the important stuff)
  65.  
  66.             dox/author.dox  -- Information on where the hell I can be reached
  67.             dox/build.dox   -- Information on schema and their compiler, build
  68.             dox/crypt.dox   -- Information on MetalBase's encryption technique
  69.             dox/flow.dox    -- Pseudocode for MetalBase's AVL-tree algorithms
  70.             dox/format.dox  -- Character-by-character format for relations
  71.             dox/lock.dox    -- Information on MetalBase's locking algorithms
  72.             dox/struct.dox  -- Information on C structure interface
  73.             dox/report.dox  -- Incomplete documentation on the report writer
  74.             dox/trouble.dox -- Troubleshooting ideas (not too many--sorry)
  75.  
  76.     o NO DAMNED DEBUGGING TRAILS
  77.          If you got this release hoping I'd leave some debugging trails in the
  78.          code again, BZZZZZT!  Sorry, but I'm only allowed to fuck up like that
  79.          once a year.  I really, really feel stupid about that...
  80.  
  81.  
  82.  
  83.  
  84. HOW TO BUILD THE STUPID THING:
  85.  
  86.     o Go to the SRC directory.
  87.  
  88.     o If you're using *nix.............type "MAKE"
  89.       If you're using Microsoft C......type "NMAKE -f makefile.dos"
  90.       If you're using something else...pick either makefile and modify it.
  91.  
  92.     o It'll compile and run STRUCT (or STRUCT.EXE), which will tell you that
  93.       you're either screwed, or what to change in the makefile to make the
  94.       library appropriately for your compiler.  If you're screwed, send me
  95.       mail (see dox/author.dox).  If you're not, do as it says.
  96.  
  97.     o Check the makefile to make sure it's going to put the headers, library
  98.       and executables wherever you want it to.
  99.  
  100.     o Type "MAKE INSTALL" (or "NMAKE -f makefile.dos INSTALL" for Microsoft C).
  101.  
  102.     o It'll compile the library and executables, and put them where you said
  103.       to.
  104.  
  105.     o If you have any relations from MetalBase 4.0 or MetalBase 4.1a, go to
  106.       where they are and type "MBCONV relationname".  It'll convert them to
  107.       5.0 (and hopefully the final) format and tell you it's done (it's really
  108.       quick, but IRREVERSABLE).
  109.  
  110.  
  111.  
  112.  
  113. WHAT TOYS YOU GET:
  114.  
  115.     o BLAST.EXE - Removes locks accidentally left around on a relation; sets
  116.       the internal number-of-users-on-this-relation to zero.
  117.  
  118.     o BUILD.EXE - Compiles relations from schema files; erases all records
  119.       in a relation.
  120.  
  121.     o FORM.EXE - Builds header files from data-entry templates; the DE
  122.       interface is really, really easy to program.  It's not perfect, but
  123.       it's nice.
  124.  
  125.     o MBCONV.EXE - Converts pre-5.0 relations to 5.0 format.  Works great!
  126.  
  127.     o REPORT.EXE - Generates reports from template files, interpereted at
  128.       run-time.
  129.  
  130.     o VR.EXE - View Relation--one of my favorite toys.  4.0 users, NON-VI
  131.       emulation is now the default; it's much, MUCH easier to add and change
  132.       records.  The basics of the new DE keys are:
  133.             CTRL-A, CTRL-return - Accept a transaction
  134.             CTRL-Q, CTRL-C      - Abort a transaction
  135.             CTRL-U,             - Undo a change within a field
  136.             Arrows, End, Home   - As expected
  137.  
  138.  
  139.  
  140.  
  141. HOW TO PLAY WITH THE STUPID THING:
  142.  
  143.    I've included two programs with this; SAMPLE and BENCH.  BENCH is just a
  144.    benchmark utility (see sample/readme), but SAMPLE is meant to be example
  145.    code, for hooking up the (suggested) data-entry interface, for adding/
  146.    deleting/changing records, etc.
  147.  
  148.    Go to the directory SAMPLE and pick-n-edit a makefile.  Note that you
  149.    don't need -DSTRUCT_ in these; that's just for building the library.  But
  150.    you WILL need -DNEED_USHORT if your compiler doesn't contain ushort, etc.
  151.  
  152.  
  153.  
  154.  
  155. -------------------------------------------------------------------------------
  156.                                                                Richid
  157. -------------------------------------------------------------------------------
  158.  
  159.